The robustness of the global Internet stems in part from the naming system that is in place for one machine to communicate with another machine. The naming system that has been adopted to allow for such communications is known as the Domain Name System or Domain Name Service (DNS), which permits machines to be identified by “domain names” (i.e., host names). Domain names can provide a more readily usable address naming scheme for human recognition, for example, “hns.com.” Applications, such as e-mail or a web browser, utilize domain names in their communication with remote machines and other processes. This communication involves the translation or mapping of domain names to addresses, such as IP addresses, to reach specific machines. In essence, DNS provides a mapping of domain names to IP addresses. The DNS is a distributed database that stores the domain name, IP address, as well as other information about hosts. The distributed database is implemented by storing various portions of the database across multiple servers in a hierarchical structure—these servers are termed “DNS servers.” Thus, the host associated with the application submits queries to a DNS server for a specific IP address of a particular destination machine.
Proxy servers, which can be used as DNS servers, are widely used by Internet Service Providers (ISPs) for performance improvement as well for enhanced security. A proxy server typically functions by intercepting layer-4 and/or application layer traffic to/from an end-user device and then performs specialized operations such as serving cached content, filtering malicious content, using the most optimal Quality of Service (QoS) based on the content type etc. While performing these functions, the proxy server acts on behalf of the end-user device and therefore the splits the traffic path into two segments: traffic between the end-user device and the Proxy server and the traffic between Proxy server and the origin server.
FIG. 1 illustrates a simplified example of the use of Proxy server in a network. In the illustrated example, proxy server 134 can be implemented as a computing system or an application that can be configured to act as an intermediary between the end-user device 132 and an Internet server (e.g., an original server 138), which can be accessed via the Internet 136. Proxy servers such as proxy server 134 typically intermediate to handle requests and traffic 110 for services or resources from one or more end-user devices 132. In operation, the end-user device 132 connects to the proxy server and requests service from another server such as, for example, original server 138. It should be noted however, that end-user device 132 need not be aware of the presence of proxy server 134. The service can include, for example, a file, a connection, a webpage, or other resource available from origin server 138. The proxy server receives the request and communicates with original server 138 as a proxy for the end-user. Although one end-user device 132 and one original server 138 are illustrated, proxy servers 134 can typically handle traffic among multiple end-user devices 132 and original servers 138.
The traffic 112, 114 between proxy server 134 and original server 138, as seen by original server 138 or any intermediate devices, originates and terminates on proxy server 134. The source IP address of originating traffic 112 is that of proxy server 134 and not that of the end-user device on whose behalf the proxy server is requesting the content.